package fr.esgi.pages;

import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;

import fr.esgi.classes.Groupe;
import fr.esgi.classes.Projet;
import fr.esgi.donnees.Database;

/**
 * Servlet implementation class RetardPdf
 */
public class RetardPdf extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public RetardPdf() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
	doPost(request,response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
	
		Projet p = null;
		
		ArrayList <Groupe> groupes = null;
		String projet=request.getParameter("projet");
	 	ArrayList<Groupe> groupe = null;
		ArrayList<Groupe> groupe2=null;
		Database c = new Database();
	 	try {
	 		p=c.buildProject(projet);
			groupe=c.retardGroupe(projet);
			groupe2=c.ProjetNonRendu(projet);
	 	} catch (ClassNotFoundException | SQLException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
	 	
	
		
		Document document = new Document();

		try {
			PdfWriter.getInstance(document, 
					response.getOutputStream());
		

		document.open();
//		document.addTitle("Projet: "+ p.getNom());
		Paragraph preface = new Paragraph();
		//addEmptyLine(preface, 1);
		//preface.add(new Paragraph("Projet " + p.getNom()+"\n"));
		document.add(preface);
		preface.add(new Paragraph("\n"));
		if(groupe.size()==0){
			
		}
		PdfPTable table = new PdfPTable(5);
		table.addCell("numero du groupe");
		table.addCell("numero du livrable");
		table.addCell("nom");
		table.addCell("prenom");
		table.addCell("jour(s) de retard");
			
		for (int i = 0; i < groupe.size(); i++) {
			for (int j = 0; j < groupe.get(i).getTabEtudiant().size(); j++) {
				table.addCell(String.valueOf(groupe.get(i).getId()));

				table.addCell(String.valueOf(groupe.get(i).getLivrableRetard()));

				table.addCell(groupe.get(i).getTabEtudiant().get(j).getPrenom());
				table.addCell(groupe.get(i).getTabEtudiant().get(j).getNom());
			table.addCell(groupe.get(i).getLivrableRendu());
		}
		}
		document.add(table);
		preface.add(new Paragraph("\n"));
		preface.add(new Paragraph("\n"));
		preface.add(new Paragraph("\n"));
		preface.add(new Paragraph("groupe n'ayant pas rendu le livrable\n"));
		
		PdfPTable table2 = new PdfPTable(4);
		table2.addCell("numero du groupe");
		table2.addCell("numero du livrable");
		table2.addCell("nom");
		table2.addCell("prenom");
		for (int i = 0; i < groupe2.size(); i++) {
			for (int j = 0; j < groupe2.get(i).getTabEtudiant().size(); j++) {
				table2.addCell(String.valueOf(groupe2.get(i).getId()));

				table2.addCell(String.valueOf(groupe2.get(i).getLivrableRetard()));

				table2.addCell(groupe2.get(i).getTabEtudiant().get(j).getPrenom());
				table2.addCell(groupe2.get(i).getTabEtudiant().get(j).getNom());
		}
		}
		document.add(table2);		
		document.close(); 
		
		
	} catch (DocumentException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	}
}
